GNU-Linux not Linux.md
ASCII text
title: A Reason to Call it GNU/Linux topics: ["gnu/linux", "linux", "free software", "android", "opinion"] DATE: 2024-07-31 ---
Linux isn't very Unix-like by itself. Of course, it's a Unix-like kernel, and it does Unix-compatible file operations, process management, and system calls, but without the GNU suite or some other userland, it is just a kernel which doesn't have to be used as a Unix-like one.
Linux is Unix-like, but not all OSes which contain Linux take advantage of that.
Android basically uses Linux like a fancy bootloader. The only thing that runs there is toybox, which technically are Unix utilities, but the user can't interact with them, and a JVM. Everything the user does is done in Java.
In Android, if you only consider the actual platform that is used for making software, that platform is Java, not Unix. No matter how hard you try, Android isn't designed to run Unix packages natively. Of course it can, but that doesn't make it Unix-like, since the intended way to run applications is in Java.
Calling an OS by its kernel is wrong; the kernel doesn't determine the nature of the OS. We don't call Windows "NT" or MacOS "Darwin".
If you call GNU/Linux "Linux", why not call Android "Linux" as well? They're not compatible with each other, but technically the name Linux works for both according to your logic.
GNU/Linux means just that: GNU on the Linux kernel. There is a GNU kernel as well, the Hurd, but most commonly we substitute it with Linux. There used to be Debian GNU/kFreeBSD, which used the FreeBSD kernel, and there is GNU/Darwin, and GNU/Hurd, and so on. They didn't invent a name for that combination, but it still doesn't deserve to be named after its kernel. GNU/Linux is more compatible with GNU/Hurd or NetBSD (even without GNU) than with Android, Tizen, ChromeOS or whatever else happens to contain Linux and use it but don't take advantage of its Unix-like nature.
The fact that Android can run GNU/Linux in chroot
doesn't mean anything; the core system is
not GNU; but the kernel still knows how to run GNU software so it will run it. But that doesn't
make Android GNU/Linux; it would be like saying your machine is Debian when it's actually OpenSUSE
and you have a Debian chroot.
If someone made a system with the Windows NT kernel but not the Windows userland and GUI, would you still call that Windows? No; it is NT but that doesn't mean it's Windows, as it doesn't have what makes Windows run Windows software.
Obligatory copypasta:
I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.
Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called "Linux", and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.
There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called "Linux" distributions are really distributions of GNU/Linux!
1--- 2title: A Reason to Call it GNU/Linux 3topics: ["gnu/linux", "linux", "free software", "android", "opinion"] 4DATE: 2024-07-31 5--- 6 7Linux isn't very Unix-like by itself. Of course, it's a Unix-like *kernel*, and it 8does Unix-compatible file operations, process management, and system calls, but without the GNU 9suite or some other userland, it is just a kernel which doesn't have to be used as a Unix-like 10one. 11 12Linux is Unix-like, but not all OSes which contain Linux take advantage of that. 13 14Android basically uses Linux like a fancy bootloader. The only thing that runs there is toybox, 15which technically are Unix utilities, but the user can't interact with them, and a JVM. 16Everything the user does is done in Java. 17 18In Android, if you only consider the actual platform that is used for making software, that 19platform is Java, not Unix. No matter how hard you try, Android isn't designed to run Unix packages 20natively. Of course it can, but that doesn't make it Unix-like, since the intended way to run 21applications is in Java. 22 23Calling an OS by its kernel is wrong; the kernel doesn't determine the nature of the OS. We don't 24call Windows "NT" or MacOS "Darwin". 25 26If you call GNU/Linux "Linux", why not call Android "Linux" as well? They're not compatible with 27each other, but technically the name Linux works for both according to your logic. 28 29GNU/Linux means just that: GNU on the Linux kernel. There is a GNU kernel as well, the Hurd, but 30most commonly we substitute it with Linux. There used to be Debian GNU/kFreeBSD, which used the 31FreeBSD kernel, and there is GNU/Darwin, and GNU/Hurd, and so on. They didn't invent a name for 32that combination, but it still doesn't deserve to be named after its kernel. GNU/Linux is more 33compatible with GNU/Hurd or NetBSD (even without GNU) than with Android, Tizen, ChromeOS or 34whatever else happens to contain Linux and use it but don't take advantage of its Unix-like 35nature. 36 37The fact that Android can run GNU/Linux in `chroot` doesn't mean anything; the core system is 38not GNU; but the kernel still knows how to run GNU software so it will run it. But that doesn't 39make Android GNU/Linux; it would be like saying your machine is Debian when it's actually OpenSUSE 40and you have a Debian chroot. 41 42If someone made a system with the Windows NT kernel but not the Windows userland and GUI, would 43you still call that Windows? No; it *is* NT but that doesn't mean it's Windows, as it doesn't 44have what makes Windows run Windows software. 45 46Obligatory copypasta: 47 48> I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, 49> or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto 50> itself, but rather another free component of a fully functioning GNU system made useful by the GNU 51> corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. 52> 53> Many computer users run a modified version of the GNU system every day, without realizing it. Through 54> a peculiar turn of events, the version of GNU which is widely used today is often called "Linux", 55> and many of its users are not aware that it is basically the GNU system, developed by the GNU Project. 56> 57> There really is a Linux, and these people are using it, but it is just a part of the system they use. 58> Linux is the kernel: the program in the system that allocates the machine's resources to the other 59> programs that you run. The kernel is an essential part of an operating system, but useless by itself; 60> it can only function in the context of a complete operating system. Linux is normally used in 61> combination with the GNU operating system: the whole system is basically GNU with Linux added, or 62> GNU/Linux. All the so-called "Linux" distributions are really distributions of GNU/Linux! 63